package com.tiger.statefulsb.sample2;

import java.util.Vector;

public class ShoppingCartBean implements javax.ejb.SessionBean {
	public final static int DEFAULT_MAX_SIZE = 20;
	public final static String SPECIAL_PRESENT = "CD-Rメディア10枚";

	private javax.ejb.SessionContext sessionContext = null;
	private Vector itemNameList = null;
	private Vector itemPriceList = null;
	private int maxSize;

	public void setSessionContext(javax.ejb.SessionContext sessionContext) throws javax.ejb.EJBException, java.rmi.RemoteException {
		System.out.println("ShoppingCartBeanのsetSessionContextが呼ばれました");
		this.sessionContext = sessionContext;
	}

	// コンポーネントインターフェイスのcreate()メソッドに対応する
	public void ejbCreate() {
		System.out.println("ShoppingCartBeanのejbCreateが呼ばれました");
		this.itemNameList = new Vector();
		this.itemPriceList = new Vector();
		this.maxSize = DEFAULT_MAX_SIZE;
	}

	// コンポーネントインターフェイスのcreate(int maxSize)メソッドに対応する
	public void ejbCreate(int maxSize) {
		System.out.println("ShoppingCartBeanのejbCreate(int maxSize)が呼ばれました");
		this.itemNameList = new Vector();
		this.itemPriceList = new Vector();
		this.maxSize = maxSize;
	}

	// コンポーネントインターフェイスのcreateWithSpecialPresents()メソッドに対応する
	public void ejbCreateWithSpecialPresents() {
		System.out.println("ShoppingCartBeanのejbCreateWithSpecialPresents()が呼ばれました");
		this.itemNameList = new Vector();
		this.itemPriceList = new Vector();
		this.maxSize = DEFAULT_MAX_SIZE;
		this.itemNameList.addElement(SPECIAL_PRESENT);
		this.itemPriceList.addElement(new Integer(0));
	}

	// コンポーネントインターフェイスのcreateWithSpecialPresents(int maxSize)メソッドに対応する
	public void ejbCreateWithSpecialPresents(int maxSize) {
		System.out.println("ShoppingCartBeanのejbCreateWithSpecialPresents(int maxSize)が呼ばれました");
		this.itemNameList = new Vector();
		this.itemPriceList = new Vector();
		this.maxSize = maxSize;
		this.itemNameList.addElement(SPECIAL_PRESENT);
		this.itemPriceList.addElement(new Integer(0));
	}

	public void add(String itemName, int itemPrice) {
		System.out.println("ShoppingCartBeanのaddが呼ばれました");

		if (itemNameList.size() >= maxSize)
			return;

		System.out.println("商品名=" + itemName + ", 価格=" + itemPrice);
		this.itemNameList.addElement(itemName);
		this.itemPriceList.addElement(new Integer(itemPrice));
	}

	public void ejbActivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
		System.out.println("ShoppingCartBeanのejbActivateが呼ばれました");
	}

	public void ejbPassivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
		System.out.println("ShoppingCartBeanのejbPassivateが呼ばれました");
	}

	public void ejbRemove() throws javax.ejb.EJBException, java.rmi.RemoteException {
		System.out.println("ShoppingCartBeanのejbRemoveが呼ばれました");
	}
}
